// pages/goods_list/index.js
//上拉分页加载数据
//1.绑定上啦触底函数
//2.加载数据 获取数据总条数
// 1. 有数据可以加载
//    1.判断有几页的数据
//      1.页码= Math.ceil(总条数/页容量)
//      2.获取当前页面数与总页码数做判断 大于总页码数 没有数据 弹出提示 小于总页码数  页码数++ 加载数据 并对数据进行拼接而不是替换
//    2.
// 2.没有数据

//下拉刷新功能
//1.触发下拉刷新的函数
//2.清空现有数据
//3.清空页码
//4.重新加载数据 并在数据加载完成以后关闭加载动画

//实现加载数据前有loading 加载数据完毕loading关闭效果 -- 在request里面配置 因为整个项目要发送多次请求 统一配置比较好
import { request } from "../../request/index";
import regeneratorRuntime from "../../lib/runtime/runtime";
Page({
  data: {
    tabs:[
      {
        id:0,
        value:"综合",
        isActive:true
      },
      {
        id:2,
        value:"销量",
        isActive:false
      },
      {
        id:3,
        value:"价格",
        isActive:false
      }
    ],
    goodsItemList:[]
  },
  //加载数据是传递的参数数组
  QueryPramasList:{
    query:'',
    cid:'',
    pageNum:1,
    pagesize:10
  },
  totalPageNum:"",
  onLoad: function(options) {
    this.QueryPramasList.cid = options.cid||""
    this.QueryPramasList.query = options.query||""
    this.getGoodsList();
  },
  //加载列表页数据
  async getGoodsList(){
      const result = await request({url:"/goods/search",data:this.QueryPramasList})
      this.totalPageNum= Math.ceil(result.total/this.QueryPramasList.pagesize)
      // this.totalNum=total
      this.setData({
        goodsItemList:[...this.data.goodsItemList,...result.goods],
      })

      //关闭下拉刷新动画

      wx.stopPullDownRefresh()
  },
  //子组件传递接收并第一方法改变子组件tab选中项
  changeIndexTabs(e){
    const {index} = e.detail;
    console.log({index}); 
    let {tabs}=this.data;
    tabs.forEach((v,i)=>i===index?v.isActive=true:v.isActive=false)
    this.setData({
      tabs
    })
  },

  //上拉加载数据方法
  onReachBottom(){
    console.log('触发触底函数')
    if(this.QueryPramasList.pageNum>=this.totalPageNum){
      console.log('没有数据可以加载啦~');
      wx.showToast({'title':'已经是最后一页啦'});
    }else{
      this.QueryPramasList.pageNum++
      this.getGoodsList()
    }
  },

  //下拉刷新
  onPullDownRefresh(){
    this.QueryPramasList.pageNum=1
    this.setData({
      goodsItemList:[],
    })
    this.getGoodsList()
  }
});
